#ifndef __myTwoOptMoveRandom_h__
#define __myTwoOptMoveRandom_h__

#include "edaMoveGen.h"
#include "myDefine.h"
#include "rng.h"
#include "graph.h"

class myTwoOptMoveRandom: public edaMoveGen
{
 public:
  myTwoOptMoveRandom();
  myTwoOptMoveRandom(Graph &g);
  // Copy constructor
  myTwoOptMoveRandom(const myTwoOptMoveRandom &m);

  virtual ~myTwoOptMoveRandom();
  edaMoveGen *clone() const;

  virtual bool generate( edaMove *move, const edaSolution &sol );

  setClassID(_USERCLASSID_ + _CLSID_TWO_OPT_MOVE_RANDOM_);
  void Serialize(edaBuffer &buf, bool pack);

 private:
  RNG rng;
  Graph *graph;
};

#endif
